package com.ruoyi.web.ydz.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;
import java.util.List;

/**
 * 论坛提问对象 invitation
 * 
 * @author ruoyi
 * @date 2024-10-29
 */
public class Invitation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 帖子标题 */
    @Excel(name = "帖子标题")
    private String title;

    /** 帖子详情 */
    @Excel(name = "帖子详情")
    private String content;

    /** 疾病ID */
    @Excel(name = "疾病ID")
    private String diseaseId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户IP */
    @Excel(name = "用户IP")
    private String userIp;

    /** 用户归属地 */
    @Excel(name = "用户归属地")
    private String userArea;

    /** 点赞数量 */
    @Excel(name = "点赞数量")
    private Long likeCount;

    /* 评论数量 */
    private Long replyCount;

    /* 收藏数量 */
    private Long collectCount;

    /** 是否推荐 0否 1是 */
    @Excel(name = "是否推荐 0否 1是")
    private String recommend;

    /** 帖子类型 --> 字典-->post_type */
    @Excel(name = "帖子类型 --> 字典-->post_type")
    private String postType;

    /* 帖子类型 多选查询使用*/
    private List<String> postTypes;

    /** 是否封禁下架 0否 1是 */
    @Excel(name = "是否封禁下架 0否 1是")
    private String ban;

    /** 是否审核 0未审核 1已审核 */
    @Excel(name = "是否审核 0未审核 1已审核")
    private String examine;

    /** 管理员推荐类型 --> 字典 nominate_type */
    @Excel(name = "管理员推荐类型 --> 字典 nominate_type")
    private String nominate;

    /** 创建人名称 */
    @Excel(name = "创建人名称")
    private String createName;

    /** 更新人名称 */
    @Excel(name = "更新人名称")
    private String updateName;

    /** 是否删除（0否；1是） */
    private String delFlag;

    /** 发布状态 0否 1是 */
    @Excel(name = "发布状态 0否 1是")
    private String status;

    /** 发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date statusTime;

    /** 审核人 */
    @Excel(name = "审核人")
    private String examineBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examineTime;

    /*审核人昵称*/
    private String examineName;

    /*帖子用户昵称*/
    private String invName;

    /*帖子用户头像*/
    private String invAvatar;

    /*帖子的评论*/
    private List<Reply> replies;

    /*当前用户是否点赞*/
    private Boolean isLike;

    /*当前用户是否收藏*/
    private Boolean isCollect;

    /*帖子关联图片*/
    private List<AttachFile> attachFiles;

    /*当前帖子是否为当前用户所属*/
    private Boolean isOwner;

    public Boolean getIsOwner() {
        return isOwner;
    }

    public void setIsOwner(Boolean isOwner) {
        this.isOwner = isOwner;
    }

    public List<AttachFile> getAttachFiles() {
        return attachFiles;
    }

    public void setAttachFiles(List<AttachFile> attachFiles) {
        this.attachFiles = attachFiles;
    }

    public String getInvAvatar() {
        return invAvatar;
    }

    public void setInvAvatar(String invAvatar) {
        this.invAvatar = invAvatar;
    }

    public Long getCollectCount() {
        return collectCount;
    }

    public void setCollectCount(Long collectCount) {
        this.collectCount = collectCount;
    }

    public Boolean getIsLike() {
        return isLike;
    }

    public void setIsLike(Boolean isLike) {
        this.isLike = isLike;
    }

    public Boolean getIsCollect() {
        return isCollect;
    }

    public void setIsCollect(Boolean isCollect) {
        this.isCollect = isCollect;
    }

    public List<Reply> getReplies() {
        return replies;
    }

    public void setReplies(List<Reply> replies) {
        this.replies = replies;
    }

    public Long getReplyCount() {
        return replyCount;
    }

    public void setReplyCount(Long replyCount) {
        this.replyCount = replyCount;
    }

    public String getExamineName() {
        return examineName;
    }

    public void setExamineName(String examineName) {
        this.examineName = examineName;
    }

    public String getInvName() {
        return invName;
    }

    public void setInvName(String invName) {
        this.invName = invName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setTitle(String title)
    {
        this.title = title;
    }

    public String getTitle()
    {
        return title;
    }
    public void setContent(String content)
    {
        this.content = content;
    }

    public String getContent()
    {
        return content;
    }
    public void setDiseaseId(String diseaseId)
    {
        this.diseaseId = diseaseId;
    }

    public String getDiseaseId()
    {
        return diseaseId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setUserIp(String userIp)
    {
        this.userIp = userIp;
    }

    public String getUserIp()
    {
        return userIp;
    }
    public void setUserArea(String userArea)
    {
        this.userArea = userArea;
    }

    public String getUserArea()
    {
        return userArea;
    }
    public void setLikeCount(Long likeCount)
    {
        this.likeCount = likeCount;
    }

    public Long getLikeCount()
    {
        return likeCount;
    }
    public void setRecommend(String recommend)
    {
        this.recommend = recommend;
    }

    public String getRecommend()
    {
        return recommend;
    }
    public void setPostType(String postType)
    {
        this.postType = postType;
    }

    public String getPostType()
    {
        return postType;
    }
    public void setBan(String ban)
    {
        this.ban = ban;
    }

    public String getBan()
    {
        return ban;
    }
    public void setExamine(String examine)
    {
        this.examine = examine;
    }

    public String getExamine()
    {
        return examine;
    }
    public void setNominate(String nominate)
    {
        this.nominate = nominate;
    }

    public String getNominate()
    {
        return nominate;
    }
    public void setCreateName(String createName)
    {
        this.createName = createName;
    }

    public String getCreateName()
    {
        return createName;
    }
    public void setUpdateName(String updateName)
    {
        this.updateName = updateName;
    }

    public String getUpdateName()
    {
        return updateName;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setStatusTime(Date statusTime)
    {
        this.statusTime = statusTime;
    }

    public Date getStatusTime()
    {
        return statusTime;
    }
    public void setExamineBy(String examineBy)
    {
        this.examineBy = examineBy;
    }

    public String getExamineBy()
    {
        return examineBy;
    }
    public void setExamineTime(Date examineTime)
    {
        this.examineTime = examineTime;
    }

    public Date getExamineTime()
    {
        return examineTime;
    }

    public List<String> getPostTypes() {
        return postTypes;
    }

    public void setPostTypes(List<String> postTypes) {
        this.postTypes = postTypes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("title", getTitle())
                .append("content", getContent())
                .append("diseaseId", getDiseaseId())
                .append("userId", getUserId())
                .append("userIp", getUserIp())
                .append("userArea", getUserArea())
                .append("likeCount", getLikeCount())
                .append("recommend", getRecommend())
                .append("postType", getPostType())
                .append("ban", getBan())
                .append("examine", getExamine())
                .append("nominate", getNominate())
                .append("createBy", getCreateBy())
                .append("createName", getCreateName())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateName", getUpdateName())
                .append("updateTime", getUpdateTime())
                .append("delFlag", getDelFlag())
                .append("status", getStatus())
                .append("statusTime", getStatusTime())
                .append("examineBy", getExamineBy())
                .append("examineTime", getExamineTime())
                .toString();
    }
}
